/*************************************
 * Created by WebStorm
 * Author : 菲尔敦
 * QQ邮箱：2891044172@qq.com  手机号：15981761402
 * Created Time :2024/2/5 18:47
 Desc :
 **************************************/
import {AxiosRequestConfig} from 'axios';
import {AxiosTransform} from './AxiosTransform.ts'

export interface CreateAxiosOptions extends AxiosRequestConfig {
    authenticationScheme?: string;
    transformAxios?: AxiosTransform;
    requestOptions?: RequestOptions;
}

export interface RequestOptions {
    // 是否加入url
    joinPrefix?: boolean;
    // 请求拼接路径
    urlPrefix?: string;
    // 错误消息提示类型
    errorMessageMode?: 'none' | 'modal';
    // 是否添加时间戳
    joinTime?: boolean;
    // 不进行任何处理，直接返回
    isTransformResponse?: boolean;
    // 是否返回原生响应头
    isReturnNativeResponse?: boolean;
    //忽略重复请求
    ignoreCancelToken?: boolean;
    // 是否携带token
    withToken?: boolean;
    // 请求参数拼接到url
    joinParamsToUrl?: boolean;
    // 格式化请求参数时间
    formatDate?: boolean;
    // 是否解析成JSON
    isParseToJson?: boolean;
}

// 上传文件
export interface UploadFileParams {
    // 其他参数
    data?: Recordable;
    // 文件参数接口字段名
    name?: string;
    // 文件
    file: File | Blob;
    // 文件名称
    filename?: string;

    [key: string]: any;
}


export interface Result<T = any> {
    code: number;
    message: string;
    data?: T;
}